package com.ybbase.framework.common.util;

import java.math.BigDecimal;


/**
 * BigDecimal工具类，支持加减乘除保留两位小数
 *
 * @author yanBin
 * @date 2019/10/28 14:51
 * @since 4.0
 */
public class BigDecimalUtil {

    /**
     * 两数相加
     *
     * @param v1 数据1
     * @param v2 数据2
     * @return BigDecimal
     * @author yanBin
     * @date 2019/10/28 15:54
     * @since 4.0
     */
    public static BigDecimal add(BigDecimal v1, BigDecimal v2) {
        v1 = v1.setScale(2, BigDecimal.ROUND_HALF_UP);
        v2 = v2.setScale(2, BigDecimal.ROUND_HALF_UP);
        return v1.add(v2);
    }


    /**
     * 两数相减
     *
     * @param v1 数据1
     * @param v2 数据2
     * @return BigDecimal
     * @author yanBin
     * @date 2019/10/28 15:54
     * @since 4.0
     */
    public static BigDecimal subtract(BigDecimal v1, BigDecimal v2) {
        v1 = v1.setScale(2, BigDecimal.ROUND_HALF_UP);
        v2 = v2.setScale(2, BigDecimal.ROUND_HALF_UP);
        return v1.subtract(v2);
    }

    /**
     * 两数相乘
     *
     * @param v1 数据1
     * @param v2 数据2
     * @return BigDecimal
     * @author yanBin
     * @date 2019/10/28 15:54
     * @since 4.0
     */
    public static BigDecimal multiply(BigDecimal v1, BigDecimal v2) {
        return v1.multiply(v2).setScale(2, BigDecimal.ROUND_HALF_UP);
    }

    /**
     * 两数相除
     *
     * @param v1 数据1
     * @param v2 数据2
     * @return BigDecimal
     * @author yanBin
     * @date 2019/10/28 15:54
     * @since 4.0
     */
    public static BigDecimal divide(BigDecimal v1, BigDecimal v2) {
        if (v2.compareTo(new BigDecimal(0)) == 0) {
            return null;
        }
        return v1.divide(v2, 2, BigDecimal.ROUND_HALF_UP);
    }
}
